package com.yunhe.java.pro15;

import java.io.File;
import java.io.IOException;

/**
 * Created by Administrator on 2017/8/11 0011.
 * 描述文件夹信息
 */
public class InOut {
    public static void main(String[] args) {
        //文件夹
        File bbFile = new File("E:\\aa");
        if (!bbFile.exists()) {
            bbFile.mkdir();  //创建单级文件夹
        }
        System.out.println("是否为目录：" + bbFile.isDirectory()); //是否是文件夹

        //创建多个文件夹
        File aaFile = new File(bbFile, "\\a1\\a2\\a3"); //两种写法（"E：\\aa\\a1\\a2\\a3")
        if (!aaFile.exists()) {
            aaFile.mkdirs(); //创建多级文件夹
        }
        System.out.println("是否存在文件夹：" + aaFile.isDirectory());


        //文件的信息
        File ccFile = new File(aaFile, "aa.txt");
        if (!ccFile.exists()) {
            try {
                ccFile.createNewFile();  //创建单个文件，必须创建异常或扔出异常
            } catch (Exception e) {
                System.out.println("创建aa文件出错！");
            }
        }
        System.out.println("ccFile  " + ccFile); //File类重写了toString,会打印出文件全路径


        //下方代码展示  创建文件父目录不存在的情况
        File ddFile = new File("E:\\dd\\dd.txt");
        if (!ddFile.exists()) {
            try {
                ddFile.createNewFile(); //创建单个文件，必须创建异常或扔出异常
            } catch (Exception e) {
                System.out.println("创建dd1.txt失败！");
            }
        }

        //解决上方问题
        File ddDirFile = new File("E:\\dd"); //先创建父级目录
        if (!ddDirFile.exists()) {
            ddDirFile.mkdir();
        }
        if (!ddFile.exists()) {
            try {
                ddFile.createNewFile();  // 当创建文件时父级不存在，抛出异常
            } catch (Exception e) {
                System.out.println("创建dd2.txt失败！");
            }
        } else {
            System.out.println("ddFile  " + ddFile);
        }


        //删除文件
        ccFile.delete(); //删除文件不会删除其父级目录
        //删除文件夹
        File cccFile = new File("E:\\cc");
        cccFile.mkdir();
        cccFile.delete(); //删除文件夹，不会删除其父级目录

        //遍历，打印全路径
        File aaaFile = new File("E:\\"); //创建盘符对象时，必须要跟上 双斜杠
        File[] eFile = aaaFile.listFiles(); //放文件对象
        //        files[0].exists()    //是对象，可调用方法
        for (File element : eFile) {
            System.out.println(element);
        }

        System.out.println();
        System.out.println();
        System.out.println();

        //遍历2
        File dddFile = new File("D:\\");
        String[] eeFile = dddFile.list();  //放文件名的字符串
        //       list[0]. （不是对象，无法调用方法）
        for (String elements : eeFile) {
            System.out.println(elements);
        }

        System.out.println();
        System.out.println();
        System.out.println();


        //递归遍历出所有的文件
        System.out.println("递归遍历：");
        FileDemo.showFileList(aaaFile.getPath());

    }
}
